package com.gd.data.platform.entity;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 告警规则实体类
 * 存储在MySQL中，用于告警规则管理
 * 
 * @author gd-data-platform
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("alert_rules")
public class AlertRule {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 规则名称
     */
    private String ruleName;

    /**
     * 规则描述
     */
    private String ruleDescription;

    /**
     * 指标类型（call_count、failure_rate、download_count）
     */
    private String metricType;

    /**
     * 告警条件（>、<、=、>=、<=）
     */
    private String condition;

    /**
     * 告警阈值
     */
    private Double threshold;

    /**
     * 时间窗口（秒）
     */
    private Integer timeWindow;

    /**
     * 告警级别（低、中、高、紧急）
     */
    private String alertLevel;

    /**
     * 是否启用
     */
    private Boolean enabled;

    /**
     * 告警通知方式（邮件、短信、WebSocket）
     */
    private String notificationMethod;

    /**
     * 通知接收人
     */
    private String notificationReceivers;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 创建者
     */
    private String creator;

    /**
     * 更新者
     */
    private String updater;
}
